Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix narrowing of intersections of type variables and primitive types #43131

Merged
merged 2 commits into from
Mar 18, 2021

Conversation

ahejlsberg
Copy link
Member

Fixes #43130.

@typescript-bot typescript-bot added Author: Team For Milestone Bug PRs that fix a bug with a specific milestone labels Mar 8, 2021
@ahejlsberg
Copy link
Member Author

@typescript-bot test this
@typescript-bot user test this
@typescript-bot run dt
@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 8, 2021

Heya @ahejlsberg, I've started to run the perf test suite on this PR at 5a8a0bb. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 8, 2021

Heya @ahejlsberg, I've started to run the extended test suite on this PR at 5a8a0bb. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 8, 2021

Heya @ahejlsberg, I've started to run the parallelized community code test suite on this PR at 5a8a0bb. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 8, 2021

Heya @ahejlsberg, I've started to run the parallelized Definitely Typed test suite on this PR at 5a8a0bb. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 8, 2021

Heya @ahejlsberg, I've started to run the abridged perf test suite on this PR at 5a8a0bb. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

@ahejlsberg
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..43131

Metric master 43131 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 348,551k (± 0.03%) 348,531k (± 0.02%) -19k (- 0.01%) 348,438k 348,646k
Parse Time 1.91s (± 0.82%) 1.93s (± 0.66%) +0.02s (+ 0.78%) 1.90s 1.96s
Bind Time 0.83s (± 0.87%) 0.83s (± 0.72%) +0.00s (+ 0.36%) 0.82s 0.85s
Check Time 5.02s (± 0.78%) 5.04s (± 0.60%) +0.01s (+ 0.28%) 4.97s 5.11s
Emit Time 5.92s (± 0.92%) 5.96s (± 0.65%) +0.04s (+ 0.64%) 5.88s 6.03s
Total Time 13.69s (± 0.74%) 13.77s (± 0.42%) +0.08s (+ 0.57%) 13.62s 13.92s
Compiler-Unions - node (v10.16.3, x64)
Memory used 204,765k (± 0.03%) 204,811k (± 0.05%) +47k (+ 0.02%) 204,647k 205,131k
Parse Time 0.78s (± 0.60%) 0.78s (± 0.75%) -0.00s (- 0.38%) 0.77s 0.79s
Bind Time 0.52s (± 1.56%) 0.52s (± 1.24%) -0.00s (- 0.19%) 0.51s 0.53s
Check Time 7.42s (± 0.80%) 7.45s (± 0.66%) +0.03s (+ 0.44%) 7.33s 7.54s
Emit Time 2.59s (± 0.75%) 2.59s (± 1.18%) -0.00s (- 0.04%) 2.54s 2.70s
Total Time 11.31s (± 0.62%) 11.34s (± 0.48%) +0.03s (+ 0.23%) 11.19s 11.42s
Monaco - node (v10.16.3, x64)
Memory used 356,591k (± 0.02%) 356,608k (± 0.03%) +18k (+ 0.00%) 356,456k 356,973k
Parse Time 1.56s (± 0.81%) 1.55s (± 0.44%) -0.01s (- 0.83%) 1.53s 1.56s
Bind Time 0.73s (± 0.46%) 0.74s (± 0.79%) +0.00s (+ 0.55%) 0.73s 0.75s
Check Time 5.21s (± 0.67%) 5.20s (± 0.52%) -0.01s (- 0.17%) 5.13s 5.25s
Emit Time 3.14s (± 0.83%) 3.15s (± 1.02%) +0.00s (+ 0.13%) 3.10s 3.25s
Total Time 10.64s (± 0.53%) 10.63s (± 0.50%) -0.02s (- 0.14%) 10.52s 10.77s
TFS - node (v10.16.3, x64)
Memory used 308,906k (± 0.02%) 308,937k (± 0.01%) +32k (+ 0.01%) 308,836k 309,017k
Parse Time 1.21s (± 0.80%) 1.21s (± 0.63%) -0.01s (- 0.41%) 1.19s 1.22s
Bind Time 0.69s (± 0.52%) 0.70s (± 0.72%) +0.00s (+ 0.14%) 0.69s 0.71s
Check Time 4.69s (± 0.79%) 4.70s (± 0.67%) +0.01s (+ 0.21%) 4.64s 4.78s
Emit Time 3.26s (± 0.74%) 3.23s (± 1.88%) -0.02s (- 0.77%) 3.10s 3.35s
Total Time 9.85s (± 0.66%) 9.84s (± 0.67%) -0.01s (- 0.15%) 9.70s 9.97s
material-ui - node (v10.16.3, x64)
Memory used 501,596k (± 0.02%) 501,603k (± 0.02%) +7k (+ 0.00%) 501,397k 501,763k
Parse Time 1.99s (± 0.72%) 2.00s (± 0.86%) +0.01s (+ 0.45%) 1.95s 2.03s
Bind Time 0.66s (± 0.68%) 0.64s (± 0.96%) -0.02s (- 2.58%) 0.63s 0.65s
Check Time 14.22s (± 0.49%) 14.30s (± 0.97%) +0.08s (+ 0.60%) 13.96s 14.54s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.87s (± 0.44%) 16.94s (± 0.91%) +0.07s (+ 0.44%) 16.56s 17.22s
Angular - node (v12.1.0, x64)
Memory used 326,193k (± 0.01%) 326,275k (± 0.04%) +82k (+ 0.03%) 325,953k 326,513k
Parse Time 1.91s (± 0.65%) 1.91s (± 0.78%) -0.01s (- 0.42%) 1.87s 1.94s
Bind Time 0.81s (± 0.80%) 0.81s (± 0.76%) -0.00s (- 0.12%) 0.80s 0.82s
Check Time 4.93s (± 0.49%) 4.93s (± 0.53%) -0.00s (- 0.10%) 4.88s 4.98s
Emit Time 6.00s (± 0.88%) 6.04s (± 0.68%) +0.04s (+ 0.60%) 5.94s 6.15s
Total Time 13.66s (± 0.58%) 13.68s (± 0.47%) +0.02s (+ 0.17%) 13.51s 13.85s
Compiler-Unions - node (v12.1.0, x64)
Memory used 191,480k (± 0.03%) 191,305k (± 0.11%) -176k (- 0.09%) 190,528k 191,545k
Parse Time 0.77s (± 0.91%) 0.77s (± 0.87%) -0.00s (- 0.52%) 0.75s 0.78s
Bind Time 0.53s (± 0.94%) 0.53s (± 1.45%) -0.00s (- 0.19%) 0.51s 0.54s
Check Time 6.99s (± 0.64%) 6.97s (± 0.51%) -0.01s (- 0.21%) 6.92s 7.06s
Emit Time 2.57s (± 0.69%) 2.57s (± 0.82%) +0.01s (+ 0.23%) 2.53s 2.63s
Total Time 10.85s (± 0.56%) 10.84s (± 0.54%) -0.01s (- 0.12%) 10.73s 11.00s
Monaco - node (v12.1.0, x64)
Memory used 339,059k (± 0.02%) 339,091k (± 0.04%) +32k (+ 0.01%) 338,890k 339,490k
Parse Time 1.55s (± 0.60%) 1.53s (± 1.07%) -0.01s (- 0.90%) 1.49s 1.58s
Bind Time 0.72s (± 0.55%) 0.72s (± 0.92%) +0.00s (+ 0.28%) 0.71s 0.74s
Check Time 5.03s (± 0.37%) 5.02s (± 0.36%) -0.01s (- 0.20%) 4.99s 5.08s
Emit Time 3.12s (± 1.02%) 3.12s (± 0.43%) +0.00s (+ 0.03%) 3.10s 3.15s
Total Time 10.43s (± 0.45%) 10.40s (± 0.29%) -0.02s (- 0.23%) 10.32s 10.45s
TFS - node (v12.1.0, x64)
Memory used 293,126k (± 0.03%) 293,092k (± 0.02%) -34k (- 0.01%) 292,929k 293,186k
Parse Time 1.22s (± 0.56%) 1.22s (± 1.24%) -0.01s (- 0.49%) 1.19s 1.25s
Bind Time 0.68s (± 1.07%) 0.68s (± 0.85%) +0.00s (+ 0.15%) 0.67s 0.69s
Check Time 4.59s (± 0.38%) 4.59s (± 0.57%) +0.00s (+ 0.02%) 4.53s 4.66s
Emit Time 3.17s (± 0.70%) 3.16s (± 0.84%) -0.02s (- 0.47%) 3.11s 3.24s
Total Time 9.67s (± 0.41%) 9.65s (± 0.47%) -0.02s (- 0.17%) 9.53s 9.77s
material-ui - node (v12.1.0, x64)
Memory used 479,469k (± 0.02%) 479,315k (± 0.06%) -154k (- 0.03%) 478,434k 479,655k
Parse Time 2.00s (± 0.44%) 2.00s (± 0.56%) -0.00s (- 0.20%) 1.97s 2.02s
Bind Time 0.64s (± 0.62%) 0.64s (± 0.97%) -0.00s (- 0.31%) 0.63s 0.65s
Check Time 12.85s (± 0.57%) 12.85s (± 0.70%) +0.00s (+ 0.03%) 12.68s 13.05s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.49s (± 0.47%) 15.49s (± 0.55%) -0.00s (- 0.01%) 15.33s 15.65s
Angular - node (v14.15.1, x64)
Memory used 324,915k (± 0.01%) 324,809k (± 0.08%) -106k (- 0.03%) 323,699k 325,015k
Parse Time 1.90s (± 0.72%) 1.90s (± 0.76%) -0.00s (- 0.11%) 1.88s 1.94s
Bind Time 0.85s (± 1.17%) 0.85s (± 0.83%) -0.00s (- 0.47%) 0.84s 0.87s
Check Time 4.92s (± 0.32%) 4.92s (± 0.76%) +0.00s (+ 0.10%) 4.86s 5.05s
Emit Time 6.27s (± 0.54%) 6.27s (± 0.74%) -0.01s (- 0.10%) 6.19s 6.39s
Total Time 13.95s (± 0.34%) 13.94s (± 0.60%) -0.01s (- 0.07%) 13.83s 14.22s
Compiler-Unions - node (v14.15.1, x64)
Memory used 191,048k (± 0.02%) 191,057k (± 0.01%) +10k (+ 0.01%) 190,990k 191,103k
Parse Time 0.79s (± 0.43%) 0.80s (± 0.63%) +0.00s (+ 0.25%) 0.79s 0.81s
Bind Time 0.55s (± 0.67%) 0.55s (± 0.73%) -0.00s (- 0.72%) 0.54s 0.56s
Check Time 7.02s (± 0.88%) 7.04s (± 0.67%) +0.02s (+ 0.34%) 6.96s 7.15s
Emit Time 2.54s (± 0.97%) 2.55s (± 0.79%) +0.01s (+ 0.51%) 2.52s 2.61s
Total Time 10.90s (± 0.68%) 10.94s (± 0.52%) +0.04s (+ 0.33%) 10.84s 11.10s
Monaco - node (v14.15.1, x64)
Memory used 338,052k (± 0.01%) 338,065k (± 0.00%) +13k (+ 0.00%) 338,020k 338,091k
Parse Time 1.56s (± 0.67%) 1.56s (± 0.69%) -0.00s (- 0.26%) 1.53s 1.59s
Bind Time 0.75s (± 1.03%) 0.75s (± 0.30%) -0.00s (- 0.27%) 0.74s 0.75s
Check Time 4.96s (± 0.63%) 4.95s (± 0.49%) -0.01s (- 0.22%) 4.90s 5.02s
Emit Time 3.16s (± 1.14%) 3.15s (± 0.79%) -0.01s (- 0.22%) 3.11s 3.23s
Total Time 10.43s (± 0.61%) 10.41s (± 0.31%) -0.02s (- 0.19%) 10.35s 10.48s
TFS - node (v14.15.1, x64)
Memory used 292,246k (± 0.01%) 292,250k (± 0.01%) +4k (+ 0.00%) 292,187k 292,310k
Parse Time 1.25s (± 1.10%) 1.26s (± 0.78%) +0.00s (+ 0.24%) 1.24s 1.28s
Bind Time 0.72s (± 1.06%) 0.72s (± 0.95%) 0.00s ( 0.00%) 0.71s 0.74s
Check Time 4.59s (± 0.55%) 4.57s (± 0.56%) -0.02s (- 0.52%) 4.53s 4.64s
Emit Time 3.24s (± 0.60%) 3.25s (± 0.73%) +0.00s (+ 0.12%) 3.18s 3.29s
Total Time 9.81s (± 0.50%) 9.79s (± 0.39%) -0.02s (- 0.18%) 9.73s 9.89s
material-ui - node (v14.15.1, x64)
Memory used 477,948k (± 0.01%) 477,946k (± 0.00%) -2k (- 0.00%) 477,909k 477,981k
Parse Time 2.06s (± 0.67%) 2.05s (± 0.61%) -0.01s (- 0.39%) 2.03s 2.09s
Bind Time 0.70s (± 0.74%) 0.70s (± 0.80%) -0.00s (- 0.14%) 0.69s 0.71s
Check Time 12.95s (± 0.62%) 13.02s (± 0.54%) +0.07s (+ 0.56%) 12.86s 13.15s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.71s (± 0.55%) 15.77s (± 0.48%) +0.06s (+ 0.40%) 15.60s 15.91s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-generic
Architecturex64
Available Memory16 GB
Available Memory5 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
Benchmark Name Iterations
Current 43131 10
Baseline master 10

Developer Information:

Download Benchmark

@typescript-bot
Copy link
Collaborator

@ahejlsberg
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..43131

Metric master 43131 Delta Best Worst
Angular - node (v14.15.1, x64)
Memory used 324,915k (± 0.01%) 324,804k (± 0.07%) -112k (- 0.03%) 323,834k 324,971k
Parse Time 1.90s (± 0.72%) 1.90s (± 0.50%) +0.00s (+ 0.16%) 1.89s 1.93s
Bind Time 0.85s (± 1.17%) 0.85s (± 0.99%) -0.00s (- 0.23%) 0.84s 0.88s
Check Time 4.92s (± 0.32%) 4.92s (± 0.65%) +0.01s (+ 0.14%) 4.88s 5.03s
Emit Time 6.27s (± 0.54%) 6.29s (± 0.74%) +0.02s (+ 0.29%) 6.20s 6.45s
Total Time 13.95s (± 0.34%) 13.97s (± 0.55%) +0.02s (+ 0.16%) 13.84s 14.25s
Compiler-Unions - node (v14.15.1, x64)
Memory used 191,048k (± 0.02%) 191,063k (± 0.02%) +15k (+ 0.01%) 190,992k 191,151k
Parse Time 0.79s (± 0.43%) 0.79s (± 0.60%) 0.00s ( 0.00%) 0.78s 0.80s
Bind Time 0.55s (± 0.67%) 0.55s (± 0.73%) -0.00s (- 0.72%) 0.54s 0.56s
Check Time 7.02s (± 0.88%) 6.99s (± 0.52%) -0.03s (- 0.41%) 6.93s 7.07s
Emit Time 2.54s (± 0.97%) 2.53s (± 0.33%) -0.01s (- 0.47%) 2.51s 2.55s
Total Time 10.90s (± 0.68%) 10.86s (± 0.34%) -0.04s (- 0.40%) 10.79s 10.96s
Monaco - node (v14.15.1, x64)
Memory used 338,052k (± 0.01%) 338,058k (± 0.01%) +6k (+ 0.00%) 338,008k 338,111k
Parse Time 1.56s (± 0.67%) 1.55s (± 0.47%) -0.01s (- 0.70%) 1.54s 1.57s
Bind Time 0.75s (± 1.03%) 0.74s (± 0.66%) -0.01s (- 0.93%) 0.74s 0.76s
Check Time 4.96s (± 0.63%) 4.94s (± 0.42%) -0.03s (- 0.54%) 4.90s 4.98s
Emit Time 3.16s (± 1.14%) 3.15s (± 0.51%) -0.01s (- 0.44%) 3.11s 3.17s
Total Time 10.43s (± 0.61%) 10.38s (± 0.30%) -0.05s (- 0.53%) 10.31s 10.43s
TFS - node (v14.15.1, x64)
Memory used 292,246k (± 0.01%) 292,246k (± 0.01%) +0k (+ 0.00%) 292,221k 292,311k
Parse Time 1.25s (± 1.10%) 1.24s (± 0.89%) -0.01s (- 0.88%) 1.22s 1.27s
Bind Time 0.72s (± 1.06%) 0.71s (± 1.06%) -0.00s (- 0.28%) 0.70s 0.74s
Check Time 4.59s (± 0.55%) 4.57s (± 0.36%) -0.02s (- 0.48%) 4.53s 4.61s
Emit Time 3.24s (± 0.60%) 3.24s (± 0.61%) -0.01s (- 0.18%) 3.20s 3.30s
Total Time 9.81s (± 0.50%) 9.76s (± 0.25%) -0.05s (- 0.46%) 9.72s 9.82s
material-ui - node (v14.15.1, x64)
Memory used 477,948k (± 0.01%) 477,802k (± 0.06%) -146k (- 0.03%) 476,684k 477,966k
Parse Time 2.06s (± 0.67%) 2.06s (± 0.54%) -0.01s (- 0.24%) 2.03s 2.08s
Bind Time 0.70s (± 0.74%) 0.70s (± 0.83%) -0.00s (- 0.29%) 0.69s 0.71s
Check Time 12.95s (± 0.62%) 12.93s (± 0.72%) -0.01s (- 0.09%) 12.82s 13.18s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.71s (± 0.55%) 15.69s (± 0.62%) -0.01s (- 0.10%) 15.56s 15.94s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-generic
Architecturex64
Available Memory16 GB
Available Memory5 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v14.15.1, x64)
Benchmark Name Iterations
Current 43131 10
Baseline master 10

Developer Information:

Download Benchmark

@typescript-bot
Copy link
Collaborator

The user suite test run you requested has finished and failed. I've opened a PR with the baseline diff from master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Milestone Bug PRs that fix a bug with a specific milestone
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Missing narrowing of intersections involving type parameter and primitive types
2 participants